<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
	<th:block th:include="common/include :: header('预约列表')" />
</head>
<body class="gray-bg">
	<div class="container-div">
		<div class="row">
			<div class="col-sm-12 search-collapse">
				<form id="post-form">
					<div class="select-list">
						<ul>
							<li>
								客户名称：<input type="text" name="customerName"/>
							</li>
							<li>
								联系方式：<input type="text" name="customerPhone"/>
							</li>
							<li>
								状态：<select name="status" th:with="type=${@dict.getType('cmi_status')}">
								<option value="">所有</option>
								<option th:each="dict : ${type}" th:text="${dict.label}" th:value="${dict.value}"></option>
							</select>
							</li>
							<li>
								<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
								<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
							</li>
						</ul>
					</div>
				</form>
			</div>
			
			<div class="btn-group-sm" id="toolbar" role="group">
				<a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="system:post:add">
	                <i class="fa fa-plus"></i> 添加
	            </a>
	        </div>
	        
	        <div class="col-sm-12 select-table table-striped">
			    <table id="bootstrap-table"></table>
			</div>
		</div>
	</div>
	<th:block th:include="common/include :: footer" />
	<script th:inline="javascript">
		// 点击到店按钮后执行的函数
		function arrivalShop(id) {
			// 弹出模态框
			$.modal.confirm("确定客户已经到店了吗？", function () {
				// 发送 Ajax 请求
				$.operate.get(prefix + "/arrivalShop?id=" + id);
			})
		}

		// 点击取消后执行的函数
		function cancel(id) {
			// 弹出模态框
			$.modal.confirm("确定要取消吗？", function () {
				// 发送 Ajax 请求
				$.operate.get(prefix + "/cancel?id=" + id);
			})
		}

		// 服务类型的数据
		var serviceTypeDatas = [[${@dict.getType('cmi_service_type')}]];

		// 状态类型的数据
		var statusDatas = [[${@dict.getType('cmi_status')}]];
		var prefix = ctx + "/business/appointment";
		$(function() {
		    var options = {
		        url: prefix + "/query",
		        createUrl: prefix + "/addPage",
		        updateUrl: prefix + "/editPage?id={id}",
		        removeUrl: prefix + "/remove",
		        exportUrl: prefix + "/export",
				modalName: "预约",	// 弹出的模态框标题名称
		        columns: [{
		            checkbox: true
		        },
		        {
		            field: 'id',
		            title: '客户id',
					visible: false
		        },
		        {
		            field: 'customerName',
		            title: '客户姓名',
		            sortable: true
		        },
		        {
		            field: 'customerPhone',
		            title: '联系方式',
		            sortable: true
		        },
				{
					field: 'appointmentTime',
					title: '预约时间',
					sortable: true
				},
				{
					field: 'actualArrivalTime',
					title: '实际到店时间',
					sortable: true,
				},
				{
					field: 'licensePlate',
					title: '车牌号码',
					sortable: true,
				},
				{
					field: 'carSeries',
					title: '汽车类型',
					sortable: true,
				},
				{
					field: 'serviceType',
					title: '服务类型',
					sortable: true,
					formatter: function(value, item, index) {
						return $.table.selectDictLabel(serviceTypeDatas, value);
					}
				},
				{
					field: 'info',
					title: '备注信息',
					sortable: true,
					formatter: function(value, row, index) {
						return $.table.tooltip(value, 5, "open");
					}
				},
				{
					field: 'status',
					title: '状态',
					sortable: true,
					formatter: function(value, item, index) {
						return $.table.selectDictLabel(statusDatas, value);
					}
				},
		        {
		            title: '操作',
		            align: 'center',
		            formatter: function(value, row, index) {
		            	let editClass = row.status === 0 ? '' : 'disabled';
		            	let arrivalClass = row.status === 0 ? '' : 'disabled';
						let settleClass = row.status === 1 || row.status === 4 ? '' : 'disabled';
						let cancelClass = row.status === 0 ? '' : 'disabled';
						let deleteClass = row.status === 0 || row.status === 2 || row.status === 3 ? '' : 'disabled';
		                var actions = [];
						actions.push('<a class="btn btn-primary '+ editClass + ' btn-xs" href="javascript:void(0)"' +
								' onclick="$.operate.edit(\'' + row.id + '\')"><i class="glyphicon glyphicon-edit"></i>编辑</a> ');
						actions.push('<a class="btn btn-warning ' + arrivalClass + ' btn-xs" href="javascript:void(0)"' +
								' onclick="arrivalShop(\'' + row.id + '\')"><i class="glyphicon glyphicon-hand-right"></i>到店</a> ');
						actions.push('<a class="btn btn-success ' + settleClass + '  btn-xs" href="javascript:void(0)"' +
								' onclick="generateStatement(\'' + row.id + '\')"><i class="fa fa-remove"></i>结算单</a> ');
						// 更多操作
						var more = [];
						more.push("<a class='btn btn-default " + cancelClass + " btn-xs' href='javascript:void(0)' onclick='cancel(" + row.id + ")'><i class='fa fa-key'></i>取消</a> ");
						more.push("<a class='btn btn-default " + deleteClass + " btn-xs' href='javascript:void(0)' onclick='$.operate.remove(" + row.id + ")'><i class='fa fa-check-square-o'></i>删除</a>");
						actions.push('<a tabindex="0" class="btn btn-info btn-xs" role="button" data-container="body" data-placement="left" data-toggle="popover" data-html="true" data-trigger="hover" data-content="' + more.join('') + '"><i class="fa fa-chevron-circle-right"></i>更多操作</a>');
						return actions.join('');
					}
		        }]
		    };
		    $.table.init(options);
		});

		// 点击结算单后调用的函数
		function generateStatement(id) {
			// 弹框
			$.modal.confirm("确定要进行结算吗？", function () {
				// 发送 Ajax 请求
				$.operate.get("/business/appointment/generateStatement?id=" + id, function (result) {
					// 当响应之后，再次发送 Ajax 请求，在一个新的标签页中打开页面
					$.modal.openTab("明细页面", "/business/statementItem/itemDetail?statementId=" + result.data);
				});
			})
		}
	</script>
</body>
</html>